/*     */ package com.iris.egrant.utils;
/*     */ 
/*     */ import java.io.UnsupportedEncodingException;
/*     */ import java.util.BitSet;
/*     */ import java.util.StringTokenizer;
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ public class Encoder
/*     */ {
/*     */   public static String encodeHTML(String s) {
/*  23 */     if (s == null) {
/*  24 */       return null;
/*     */     }
/*  26 */     char[] ac = new char[s.length()];
/*  27 */     s.getChars(0, s.length(), ac, 0);
/*  28 */     StringBuffer stringbuffer = new StringBuffer(ac.length + 50);
/*  29 */     for (int i = 0; i < ac.length; i++) {
/*  30 */       switch (ac[i]) {
/*     */         case '<':
/*  32 */           stringbuffer.append("&lt;");
/*     */           break;
/*     */         
/*     */         case '>':
/*  36 */           stringbuffer.append("&gt;");
/*     */           break;
/*     */         
/*     */         case '&':
/*  40 */           stringbuffer.append("&amp;");
/*     */           break;
/*     */         
/*     */         case '"':
/*  44 */           stringbuffer.append("&quot;");
/*     */           break;
/*     */         
/*     */         default:
/*  48 */           stringbuffer.append(ac[i]);
/*     */           break;
/*     */       } 
/*     */     
/*     */     } 
/*  53 */     return stringbuffer.toString();
/*     */   }
/*     */   
/*     */   public static String encodeJS(String s) {
/*  57 */     if (s == null) {
/*  58 */       return null;
/*     */     }
/*  60 */     char[] ac = new char[s.length()];
/*  61 */     s.getChars(0, s.length(), ac, 0);
/*  62 */     StringBuffer stringbuffer = new StringBuffer(ac.length + 50);
/*  63 */     for (int i = 0; i < ac.length; i++) {
/*  64 */       switch (ac[i]) {
/*     */         case '\r':
/*  66 */           stringbuffer.append("\\n");
/*  67 */           if (i < ac.length - 1 && ac[i + 1] == '\n') {
/*  68 */             i++;
/*     */           }
/*     */           break;
/*     */         
/*     */         case '\n':
/*  73 */           stringbuffer.append("\\n");
/*     */           break;
/*     */         
/*     */         case '"':
/*     */         case '\'':
/*     */         case '\\':
/*  79 */           stringbuffer.append('\\');
/*  80 */           stringbuffer.append(ac[i]);
/*     */           break;
/*     */         
/*     */         default:
/*  84 */           stringbuffer.append(ac[i]);
/*     */           break;
/*     */       } 
/*     */     
/*     */     } 
/*  89 */     return stringbuffer.toString();
/*     */   }
/*     */   
/*     */   public static String quoteObjectProp(String s) {
/*  93 */     String s1 = s;
/*  94 */     StringTokenizer stringtokenizer = new StringTokenizer(s, "'");
/*  95 */     boolean flag = true;
/*  96 */     while (stringtokenizer.hasMoreTokens()) {
/*  97 */       if (!flag) {
/*  98 */         s1 = s1 + "''" + stringtokenizer.nextToken(); continue;
/*     */       } 
/* 100 */       flag = false;
/* 101 */       s1 = stringtokenizer.nextToken();
/*     */     } 
/*     */     
/* 104 */     s1 = "'" + s1 + "'";
/* 105 */     return s1;
/*     */   }
/*     */   
/*     */   public static String encodeCookie(String s) {
/* 109 */     if (s == null) {
/* 110 */       return null;
/*     */     }
/* 112 */     return a(s.toCharArray());
/*     */   }
/*     */   
/*     */   public static String encodeURL(String s) {
/*     */     char[] arrayOfChar;
/* 117 */     if (s == null) {
/* 118 */       return null;
/*     */     }
/*     */     
/*     */     try {
/* 122 */       byte[] abyte0 = s.getBytes("UTF-8");
/* 123 */       arrayOfChar = new char[abyte0.length];
/* 124 */       for (int i = abyte0.length - 1; i >= 0; i--) {
/* 125 */         arrayOfChar[i] = (char)(abyte0[i] & 0xFF);
/*     */       }
/*     */     }
/* 128 */     catch (UnsupportedEncodingException unsupportedencodingexception) {
/* 129 */       arrayOfChar = s.toCharArray();
/*     */     } 
/* 131 */     return a(arrayOfChar);
/*     */   }
/*     */   
/*     */   private static String a(char[] ac) {
/* 135 */     StringBuffer stringbuffer = new StringBuffer(ac.length);
/* 136 */     for (int i = 0; i < ac.length; i++) {
/* 137 */       int j = ac[i];
/* 138 */       if (dontNeedEncoding.get(j)) {
/* 139 */         if (j == 32) {
/* 140 */           j = 43;
/*     */         }
/* 142 */         stringbuffer.append((char)j);
/*     */       } else {
/* 144 */         stringbuffer.append('%');
/* 145 */         byte byte0 = 1;
/* 146 */         if (j > 255) {
/* 147 */           byte0 = 3;
/* 148 */           stringbuffer.append('u');
/*     */         } 
/* 150 */         for (int k = byte0; k >= 0; k--) {
/* 151 */           int l = ((j & 61440 >> (3 - k) * 4) >> k * 4) + 48;
/* 152 */           if (l > 57) {
/* 153 */             l += 7;
/*     */           }
/* 155 */           stringbuffer.append((char)l);
/*     */         } 
/*     */       } 
/*     */     } 
/*     */ 
/*     */     
/* 161 */     return stringbuffer.toString();
/*     */   }
/*     */   
/*     */   public static String decodeCookie(String s) {
/* 165 */     if (s == null) {
/* 166 */       return null;
/*     */     }
/* 168 */     StringBuffer stringbuffer = new StringBuffer();
/* 169 */     for (int i = 0; i < s.length(); i++) {
/* 170 */       char c = s.charAt(i);
/* 171 */       switch (c) {
/*     */         case '+':
/* 173 */           stringbuffer.append(' ');
/*     */           break;
/*     */         
/*     */         case '%':
/*     */           try {
/* 178 */             if (s.charAt(i + 1) == 'u') {
/* 179 */               stringbuffer.append((char)Integer.parseInt(s.substring(i + 2, i + 6), 16));
/* 180 */               i += 5; break;
/*     */             } 
/* 182 */             stringbuffer.append((char)Integer.parseInt(s.substring(i + 1, i + 3), 16));
/* 183 */             i += 2;
/*     */           }
/* 185 */           catch (NumberFormatException numberformatexception) {
/* 186 */             throw new IllegalArgumentException();
/*     */           } 
/*     */           break;
/*     */         
/*     */         default:
/* 191 */           stringbuffer.append(c);
/*     */           break;
/*     */       } 
/*     */     
/*     */     } 
/* 196 */     String s1 = stringbuffer.toString();
/* 197 */     return s1;
/*     */   }
/*     */ 
/*     */   
/* 201 */   private static BitSet dontNeedEncoding = new BitSet(256); static {
/* 202 */     for (int i = 97; i <= 122; i++) {
/* 203 */       dontNeedEncoding.set(i);
/*     */     }
/*     */     
/* 206 */     for (int j = 65; j <= 90; j++) {
/* 207 */       dontNeedEncoding.set(j);
/*     */     }
/*     */     
/* 210 */     for (int k = 48; k <= 57; k++) {
/* 211 */       dontNeedEncoding.set(k);
/*     */     }
/*     */     
/* 214 */     dontNeedEncoding.set(32);
/* 215 */     dontNeedEncoding.set(45);
/* 216 */     dontNeedEncoding.set(95);
/* 217 */     dontNeedEncoding.set(46);
/* 218 */     dontNeedEncoding.set(42);
/*     */   }
/*     */ }


/* Location:              D:\文件kjt\WEB-INF\lib\egrant-core-2.2.20240205.1659.jar!\com\iris\egran\\utils\Encoder.class
 * Java compiler version: 6 (50.0)
 * JD-Core Version:       1.1.3
 */